#Boa:Dialog:Dialog1

import wx
import consultasBD
import utiles

def create(parent):
    return Dialog1(parent)

[wxID_DIALOG1, wxID_DIALOG1BUTTON1, wxID_DIALOG1BUTTON2, wxID_DIALOG1BUTTON3, 
 wxID_DIALOG1BUTTON4, wxID_DIALOG1STATICTEXT1, wxID_DIALOG1STATICTEXT2, 
 wxID_DIALOG1TEXTCTRL1, wxID_DIALOG1TEXTCTRL2, 
] = [wx.NewId() for _init_ctrls in range(9)]

class Dialog1(wx.Dialog):
    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Dialog.__init__(self, id=wxID_DIALOG1, name='', parent=prnt,
              pos=wx.Point(395, 156), size=wx.Size(445, 398),
              style=wx.DEFAULT_DIALOG_STYLE, title='Rubros')
        self.SetClientSize(wx.Size(437, 371))

        self.staticText1 = wx.StaticText(id=wxID_DIALOG1STATICTEXT1,
              label='Codigo', name='staticText1', parent=self, pos=wx.Point(16,
              8), size=wx.Size(33, 13), style=0)

        self.textCtrl1 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL1, name='textCtrl1',
              parent=self, pos=wx.Point(16, 24), size=wx.Size(40, 21), style=0,
              value='')
        self.textCtrl1.Bind(wx.EVT_KILL_FOCUS, self.OnKillidrubro)

        self.staticText2 = wx.StaticText(id=wxID_DIALOG1STATICTEXT2,
              label='Nombre', name='staticText2', parent=self, pos=wx.Point(56,
              8), size=wx.Size(37, 13), style=0)

        self.textCtrl2 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL2, name='textCtrl2',
              parent=self, pos=wx.Point(56, 24), size=wx.Size(200, 21), style=0,
              value='')
        self.textCtrl2.Bind(wx.EVT_KILL_FOCUS, self.OnKillnombrerubro)

        self.button1 = wx.Button(id=wxID_DIALOG1BUTTON1, label='Buscar',
              name='button1', parent=self, pos=wx.Point(264, 24),
              size=wx.Size(75, 23), style=0)
        self.button1.Bind(wx.EVT_BUTTON, self.OnBuscar, id=wxID_DIALOG1BUTTON1)

        self.button2 = wx.Button(id=wxID_DIALOG1BUTTON2, label='Guardar',
              name='button2', parent=self, pos=wx.Point(16, 336),
              size=wx.Size(75, 23), style=0)

        self.button3 = wx.Button(id=wxID_DIALOG1BUTTON3, label='Limpiar',
              name='button3', parent=self, pos=wx.Point(264, 336),
              size=wx.Size(75, 23), style=0)
        self.button3.Bind(wx.EVT_BUTTON, self.OnLimpiar, id=wxID_DIALOG1BUTTON3)

        self.button4 = wx.Button(id=wxID_DIALOG1BUTTON4, label='Salir',
              name='button4', parent=self, pos=wx.Point(352, 336),
              size=wx.Size(75, 23), style=0)
        self.button4.Bind(wx.EVT_BUTTON, self.OnSalir, id=wxID_DIALOG1BUTTON4)

    def __init__(self, parent):
        self._init_ctrls(parent)
        self.listaRubrosAgrupados = []
        self.listaRubrosSinAgrupar = []

    def OnSalir(self, event):
        self.Close()

    def OnLimpiar(self, event):
        self.textCtrl1.SetLabel("")
        self.textCtrl2.SetLabel("")
        self.textCtrl1.SetFocus()
        
    def buscarNombreGrupo(self,idgrupo):
        sql = "SELECT nombregrupo FROM grupos WHERE idgrupo='"+str(idgrupo)+"' "
        resultado = consultasBD.ordenCruda(sql)
        if resultado==() or resultado==None or len(resultado)==0:
            return ""
        else:
            return resultado[0][0]

    def buscarGruposDelRubro(self,idrubro):
        sql = "SELECT idgrupo FROM rubros WHERE idrubro='"+idrubro+"' "
        resultado = consultasBD.ordenCruda(sql)
        listaGrupos = []
        for item in resultado:
            listaGrupos.append(item[0])
        print listaGrupos

    def buscarGruposDisponibles(self):
        r1 = "SELECT idgrupo FROM grupos \n"
        r2 = "WHERE idgrupo NOT IN (SELECT idgrupo FROM rubros WHERE 1) \n"
        r3 = "ORDER BY idgrupo "
        sql = r1+r2+r3
        resultado = consultasBD.ordenCruda(sql)
        listaGrupos = []
        for item in resultado:
            listaGrupos.append(item[0])
        print listaGrupos
        
    def OnKillidrubro(self, event):
        idrubro = self.textCtrl1.GetLabel()
        if idrubro == "": return
        self.OnBuscar(None)

    def OnKillnombrerubro(self, event):
        nombrerubro = self.textCtrl2.GetLabel()
        if nombrerubro == "": return
        self.OnBuscar(None)
        
    def OnBuscar(self, event):
        idrubro = self.textCtrl1.GetLabel()
        nombrerubro = self.textCtrl2.GetLabel()
        if nombrerubro!="":
            sql = "SELECT * FROM rubros WHERE nombrerubro LIKE '%"+nombrerubro+"%' "
        if idrubro!="":
            sql = "SELECT * FROM rubros WHERE idrubro='"+idrubro+"' "

        datos = consultasBD.ordenCrudaDict(sql)
        if datos==() or datos==None or len(datos)==0:
            utiles.mensaje(None,"Rubro no encontrado")
            self.textCtrl1.SetFocus()
            return
        if len(datos)>1: #se encontro mas de un rubro similar
            import ConsultasVarias
            r1 = "SELECT idrubro,nombrerubro FROM rubros "
            r2 - "WHERE '"+l+"' ORDER BY talle"
            consultaSQL = r1+r2
            ventana = ConsultasVarias.ConsultasVarias(self,consultaSQL)
            try:
                ventana.ShowModal()
                id = ventana.Muestraid()
                self.grid1.SetCellValue(fil, col, str(id))
            finally:
                ventana.Destroy()            
            pass
        
        self.textCtrl1.SetLabel(str(datos[0]["idrubro"]))
        self.textCtrl2.SetLabel(str(datos[0]["nombrerubro"]))
        
        